﻿using System;
using System.Collections.Generic;
using Cms.Domain;

namespace Cms.Application.Admin.Views
{
    public interface IEditAdministratorView : IAdminPageView, ITranslatable
    {
        int EditedAdministratorID { get; }

        string Username { get; set; }

        string Password { get; set; }

        string Email { get; set; }

        int SelectedAdministratorGroupID { get; set; }

        string Firstname { get; set; }

        string Lastname { get; set; }

        int SelectedDefaultSiteID { get; set; }

        string DefaultSystemLocale { get; set; }

        string DateFormat { get; set; }

        string TimeFormat { get; set; }

        DayOfWeek? FirstDayOfWeek { get; set; }

        bool ShowIntroHelp { get; set; }
        
        void SetEditedAdministratorID(int id);
        
        void SetAdministratorGroups(IList<AdministratorGroup> groups);
        
        void SetDefaultSites(IList<Site> sites);
        
        void SetSystemLocales(IList<string> systemLocales);

        void SetAvailableSites(IList<Site> sites);

        IEnumerable<int> GetSelectedAvailableSiteIDs();
    }
}